// pages/my/privateBook/privateBook.js
import sendRequest from "../../util/sendRequest"
Page({

  /**
   * 页面的初始数据
   */
  data: {
    objectMultiArray: [
      [{
          id: '01',
          gradename: '全部'
        } //初始化全部年级
      ],
      [{
        id: '001',
        gradename: '全部' //初始化全部班级
      }]
    ],
    multiIndex: [0, 0],
    tempClassesArray: new Array(), //保存对应每个年级的班级
    display: 'none', //默认图片是否显示
    bookName: '', //input文本框书本名
    gradeId: '', //下拉框函数事件携带值
    classId: '', //下拉框函数事件携带值
    bookimage: '', //图片准备上传的地址
    cloudPath: '', //上传图片搭配服务器的地址
    tempMultiIndex:[]
  },
  //书本名字
  bookNameInput(e) {
    this.data.bookName = e.detail.value;
  },
  //下拉框点击确定带回真实id值
  MultiChange(e) {
    this.data.classId = e.currentTarget.dataset.cid;
    this.data.gradeId = e.currentTarget.dataset.gid;
    console.log(e)
    this.setData({
      multiIndex: e.detail.value
    })
  },
  //下拉框滑动改变显示数据
  MultiColumnChange(e) {
    let data = {
      objectMultiArray: this.data.objectMultiArray,
      multiIndex: this.data.multiIndex
    };
    data.multiIndex[e.detail.column] = e.detail.value;
    if (e.detail.column == 0) {
      if (data.multiIndex[0] == 0) { //默认显示全部
        data.objectMultiArray[1] = [{
          id: '01',
          gradename: '全部'
        }];
      } else {
        //对应下拉年级显示对应的班级
        for (var i = 0; i < this.data.tempClassesArray.length; i++) {
          if (parseInt(e.detail.value) == i + 1) {
            data.objectMultiArray[1] = this.data.tempClassesArray[i]
            break
          }
        }
      }
      data.multiIndex[1] = 0;
    }
    this.setData(data);

  },
  //点击删除图片路径并且不显示
  deleteImage: function(options) {
    wx.showModal({
      title: '确定要修改吗？',
      content: '点击确定会删除图片，如果你是在修改那原来的图片就会删除！',
      success: res => {
        if (res.confirm) {
          //如果是修改这里需要执行删除图片操作
          this.data.bookimage = '';
          this.data.cloudPath = '';
          this.setData({
            imageUrl: '', //显示到页面
            display: 'none'
          })
        } else if (res.cancel) {

        }
      }
    })
  },
  //选择图片显示到页面
  choiceImageShow: function() {
    if (this.data.bookimage || this.data.cloudPath) { //重复选择图片
      this.data.bookimage = '';
      this.data.cloudPath = '';
    }
    wx.chooseImage({
      count: 1,
      sourceType: ['album', 'camera'],
      sizeType: ['compressed'],
      success: res => {
        const filePath = res.tempFilePaths[0] //指向下标第一个图片资源
        this.data.bookimage = filePath; //图片准备上传的地址
        this.setData({
          imageUrl: filePath, //显示到页面
          display: 'inline-block'
        })
        // 上传图片到服务器的地址
        const cloudPath = "bookImagePathCloud/" + new Date().getTime() + filePath.match(/\.[^.]+?$/)[0];
        this.data.cloudPath = cloudPath;
      },
      fail: function(res) {
        console.log(res)
        wx.showToast({
          title: '选择图片失败',
          icon: 'none'
        })
      },
    })
  },
  //提交
  submitAdd: function(e) {
    if (!this.data.bookName.trim() || !this.data.gradeId || !this.data.classId || !this.data.bookimage.trim()) {
      wx.showToast({
        title: '起填写完整',
        icon: 'none'
      })
      return
    }
    //修改
    // if(){

    // }
    const cloudPath = this.data.cloudPath;
    const filePath = this.data.bookimage;
    //提交执行上传图片
    wx.cloud.uploadFile({
      cloudPath,
      filePath,
      success: res => {
        console.log(res)
        //写添加方法
        sendRequest({
          url: "addPrivateBook",
          method: "POST",
          data: {
            bookName: this.data.bookName,
            bookImage: res.fileID,
            gradeId: this.data.gradeId,
            classId: this.data.classId
          },
          success: res => {
            //后台代码使用ResultResponse返回的状态码200的为登录成功
            if (res.data.code == 200) {
              //登录成功显示Toast并显示成功的图标
              wx.showToast({
                title: res.data.msg,
                icon: 'success'
              })
            } else {
              //请求异常或登录失败则只显示文字，不显示图标(wx.showToast没失败的图标，为了区分成功的所以把图片去掉了)
              wx.showToast({
                title: res.data.msg,
                icon: 'none'
              })
            }

          },
          fail: res => { //失败的回调(可忽略不写，但建议写上)
            console.log("fail", res)
          },
          complete: res => { //请求执行完成的回调(可忽略不写)
            console.log("complete", res)
          }
        })
      },
      fail: res => {
        wx.showToast({
          title: '图片上传失败，请重新上传',
          icon: 'none'
        })
      }
    });

  },
  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function(options) {
    var bid = 34; //options.bid;
    sendRequest({
        url: "getGradeListAll", //请求地址(不需要加上请求IP)
        method: "GET", //请求方式(默认GET，可忽略)
        success: res => { //失败的回调(可忽略不写，但建议写上)
          //后台代码使用ResultResponse返回的状态码200的为登录成功
          if (res.statusCode == 200) {
            let data = {
              objectMultiArray: this.data.objectMultiArray
            };
            data.objectMultiArray[0] = data.objectMultiArray[0].concat(res.data)
            this.setData(data);
          } else {
            //请求异常或登录失败则只显示文字，不显示图标(wx.showToast没失败的图标，为了区分成功的所以把图片去掉了)
            wx.showToast({
              title: '网络出错',
              icon: 'none'
            })
            return
          }

        },
        fail: res => { //失败的回调(可忽略不写，但建议写上)
          console.log("fail", res)
        }
      }).then(r => {
        sendRequest({
          url: "selectList",
          method: "GET",
          success: res => {
            for (var i = 1; i < (this.data.objectMultiArray[0].length); i++) { //年级集合，
              this.data.tempClassesArray.push(new Array());
              for (var j = 0; j < res.data.length; j++) {
                if (this.data.objectMultiArray[0][i].id == res.data[j].grade.id) {
                  //自定义班级表的属性别名,渲染层需要指定key=对象的某个属性（gradename）为显示内容。
                  this.data.tempClassesArray[i - 1].push({
                    id: res.data[j].id,
                    gradename: res.data[j].classname
                  }) //修改键名
                }
              }
            }
            sendRequest({
              url: "selectBookById",
              method: "get",
              data: {
                bookId: bid
              },
              success: res => {
                if (res.data.code == 200) {
                  this.data.bookName = res.data.data.bookname;
                  this.data.classId = res.data.data.classes.id;
                  this.data.gradeId = res.data.data.grade.id;
                  this.data.bookimage = res.data.data.bookimage;
                  //获取年级下标
                  for (var index in this.data.objectMultiArray[0]) {
                    if (this.data.objectMultiArray[0][index].id === this.data.gradeId){
                      this.data.tempMultiIndex.push(parseInt(index))
                      break
                    }
                  }
                  //获取班级id
                  for (var index in this.data.tempClassesArray) {
                    for (var index2 in this.data.tempClassesArray[index]) {
                      if (this.data.tempClassesArray[index][index2].id == this.data.classId) {
                        this.data.tempMultiIndex.push(parseInt(index2))
                        break
                      }
                    }
                  }
                  //数据回显
                  this.data.objectMultiArray[1] = this.data.tempClassesArray[this.data.tempMultiIndex[0] - 1]
                  this.setData({
                    objectMultiArray: this.data.objectMultiArray,
                    multiIndex: this.data.tempMultiIndex, //选中哪个年级，选中对应年级对应的班级
                    display:'inline-block',
                    imageUrl: this.data.bookimage,
                    tempBookName:this.data.bookName
                  })
                } else {
                  wx.showToast({
                    title: '网络出错',
                    icon: 'none'
                  })
                  return
                }

              },
              fail: res => {
                console.log("fail", res)
              }
            })
          },
          fail: res => {
            console.log("fail", res)
          }
        })
      })
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function() {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function() {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function() {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function() {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function() {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function() {

  }
})